package com.yhy.wxzn.wcs.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yhy.wxzn.wcs.device.rgv.enums.RgvProgress;
import com.yhy.wxzn.wcs.entity.TaskGenerateRequest;
import com.yhy.wxzn.wcs.entity.WcsFourWayTask;
import com.yhy.wxzn.wcs.entity.WcsTask;
import com.yhy.wxzn.wcs.enums.TaskStatus;
import org.jeecg.common.api.vo.Result;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: wcs_task
 * @Author: jeecg-boot
 * @Date:   2024-01-23
 * @Version: V1.0
 */
public interface IWcsTaskService extends IService<WcsTask> {

    WcsTask updatePlcProgress(WcsTask task, String deviceName,Integer plcProgress);


    Result<?> generateTask(TaskGenerateRequest taskGenerateRequest);


     List<WcsTask> getUnAssignTask();


    void assignTask(Integer taskNo, Integer id);

    boolean updateRgvProgressReturnBoole(WcsTask task, RgvProgress rgvProgress);
    WcsTask updateRgvProgress(WcsTask task, RgvProgress rgvProgress);

    WcsTask updateTaskStatus(WcsTask task, TaskStatus taskStatus);
    boolean updateTaskStatusReturnBool(WcsTask task, TaskStatus taskStatus);
    WcsTask updateTaskStatusByWmsId(WcsTask task, TaskStatus taskStatus);

    WcsTask getFirstCanExecuteTask(Integer id);

    WcsTask queryTaskByWmsId(String taskId);

    String insertTask(ArrayList<WcsTask> taskDBs);
}
